package cn.zane.designPattern.behaviorPatterns.commandPatterns;

import cn.zane.designPattern.behaviorPatterns.commandPatterns.design.XiaoEr;
import cn.zane.designPattern.behaviorPatterns.commandPatterns.design.cock.impl.GuangDongCook;
import cn.zane.designPattern.behaviorPatterns.commandPatterns.design.cock.impl.JiangSuCook;
import cn.zane.designPattern.behaviorPatterns.commandPatterns.design.cock.impl.ShanDongCook;
import cn.zane.designPattern.behaviorPatterns.commandPatterns.design.cock.impl.SiChuanCook;
import cn.zane.designPattern.behaviorPatterns.commandPatterns.design.cuisine.ICuisine;
import cn.zane.designPattern.behaviorPatterns.commandPatterns.design.cuisine.impl.GuangDoneCuisine;
import cn.zane.designPattern.behaviorPatterns.commandPatterns.design.cuisine.impl.JiangSuCuisine;
import cn.zane.designPattern.behaviorPatterns.commandPatterns.design.cuisine.impl.ShanDongCuisine;
import cn.zane.designPattern.behaviorPatterns.commandPatterns.design.cuisine.impl.SiChuanCuisine;

/**
 * @author zane
 * @date 2025/01/22
 * @Description
 */
public class CommandPatternsMain {
    public static void main(String[] args) {

        // 菜系 + 厨师；广东（粤菜）、江苏（苏菜）、山东（鲁菜）、四川（川菜）
        ICuisine guangDoneCuisine = new GuangDoneCuisine(new GuangDongCook());
        ICuisine jiangSuCuisine = new JiangSuCuisine(new JiangSuCook());
        ICuisine shanDongCuisine = new ShanDongCuisine(new ShanDongCook());
        ICuisine siChuanCuisine = new SiChuanCuisine(new SiChuanCook());

        // 点单
        XiaoEr xiaoEr = new XiaoEr();
        xiaoEr.order(guangDoneCuisine);
        xiaoEr.order(jiangSuCuisine);
        xiaoEr.order(shanDongCuisine);
        xiaoEr.order(siChuanCuisine);

        // 下单
        xiaoEr.placeOrder();
    }
}
